#include <iostream>
using namespace std;

/*
    const修饰成员函数
    1.写法
        const 放到函数的后面
        void show() const     show源码不能修改任何成员变量的值
        {
        cout << 变量成员 << endl;
        }
    2.C++普通函数能不能用const修饰   不能

    3.const放在函数的前面和后面有什么区别
      const int fun() const; 前面的const修饰返回值 后面的const修饰成员函数

*/

class Cat
{
public:
    Cat(int a, string n)
    {
        age = a;
        name = n;
    }

    void show(int n) const
    {
        n = 10;
        // name = "Tom"; // const修饰的成员函数不能修改成员变量的值
        cout << "age = " << age << endl;
        cout << "n = " << n << endl;
    }

    const void show2()
    {
        age = 13;
        cout << "age = " << age << endl;
    }

private:
    int age;
    string name;
};

// void add(int a, int b) const   //非成员函数不能用 const修饰
// {
//     cout << a + b << endl;
// }

int main()
{
    Cat c(11, "Tom");
    c.show(666);
    c.show2();
    return 0;
}